<?php
/**
 * Nweb Editor
 *
 * This script is protected by copyright. Its use, copying, modification
 * and distribution without written consent of the author is prohibited.
 *
 * @category    source
 * @package     pl.nweb.editor.model
 * @subpackage  row
 * @author      Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright   Copyright (c) 2012 Krzysztof Kardasz
 * @license     http://www.gnu.org/licenses/lgpl-3.0.txt  GNU Lesser General Public
 * @version     1.0 $Id$
 * @link        https://nweb-editor.googlecode.com
 * @link        http://editor.nweb.pl
 */

namespace pl\nweb\editor\app\model\gateway\row;

use \pl\nweb\editor\app\model\gateway\table\Node as Table;

/**
 * Model wiersza tabeli
 *
 * @category    source
 * @package     pl.nweb.editor.model
 * @subpackage  row
 * @author      Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright   Copyright (c) 2012 Krzysztof Kardasz
 * @version     1.0 $Id$
 */
class Node extends \pl\nweb\editor\app\model\gateway\Row
{
    /**
     * Definiuje identyfikator
     *
     * @param integer $id identyfikator
     * @return void
     */
    public function setId ($id)
    {
        if($id = (int)$id) {
            $this->{Table::FIELD_ID} = $id;
        }
    }

    /**
     * Zwraca identyfikator
     *
     * @return integer
     */
    public function getId ()
    {
        return (int)$this->get(Table::FIELD_ID);
    }

    /**
     * Definiuje identyfikator treści
     *
     * @param integer $id identyfikator
     * @return void
     */
    public function setContentId ($id)
    {
        if($id = (int)$id) {
            $this->{Table::FIELD_CONTENT_ID} = $id;
        }
    }

    /**
     * Zwraca identyfikator treści
     *
     * @return integer
     */
    public function getContentId ()
    {
        return (int)$this->get(Table::FIELD_CONTENT_ID);
    }

    /**
     * Definiuje 2-znakowy kod języka
     *
     * @param  string $language 2-znakowy kod języka
     * @return void
     */
    public function setLanguage ($language)
    {
        $this->{Table::FIELD_LANGUAGE} = $language;
    }

    /**
     * Zwraca 2-znakowy kod języka
     *
     * @return string
     */
    public function getLanguage ()
    {
        return $this->get(Table::FIELD_LANGUAGE);
    }

    /**
     * Definiuje identyfikator rodzica
     *
     * @param integer $id identyfikator rodzica
     * @return void
     */
    public function setParentId ($id)
    {
        if($id = (int)$id) {
            $this->{Table::FIELD_PARENT_ID} = $id;
        }
    }

    /**
     * Zwraca identyfikator rodzica
     *
     * @return integer
     */
    public function getParentId ()
    {
        return (int)$this->get(Table::FIELD_PARENT_ID);
    }

    /**
     * Definiuje tytuł
     *
     * @param  string $title tytuł
     * @return void
     */
    public function setTitle ($title)
    {
        $this->{Table::FIELD_TITLE} = $title;
    }

    /**
     * Zwraca tytuł
     *
     * @return string
     */
    public function getTitle ()
    {
        return $this->get(Table::FIELD_TITLE);
    }

    /**
     * Definiuje adres url
     *
     * @param  string $url adres url
     * @return void
     */
    public function setUrl ($url)
    {
        $this->{Table::FIELD_URL} = $url;
    }

    /**
     * Zwraca adres url
     *
     * @return string
     */
    public function getUrl ()
    {
        return $this->get(Table::FIELD_URL);
    }

    /**
     * Definiuje wyrażenie regularne adresu url
     *
     * @param  string $regexp wyrażenie regularne
     * @return void
     */
    public function setRegexp ($regexp)
    {
        $this->{Table::FIELD_REGEXP} = $regexp;
    }

    /**
     * Zwraca wyrażenie regularne adresu url
     *
     * @return string
     */
    public function getRegexp ()
    {
        return $this->get(Table::FIELD_REGEXP);
    }

    /**
     * Definiuje priorytet
     *
     * @param integer $priority priorytet
     * @return void
     */
    public function setPriority ($priority)
    {
        $this->{Table::FIELD_PRIORITY} = (int)$priority;
    }

    /**
     * Zwraca priorytet
     *
     * @return integer
     */
    public function getPriority ()
    {
        return (int)$this->get(Table::FIELD_PRIORITY);
    }

    /**
     * Definiuje lewy węzeł
     *
     * @param integer $lft lewy węzeł
     * @return void
     */
    public function setLft ($lft)
    {
        $this->{Table::FIELD_LFT} = (int)$lft;
    }

    /**
     * Zwraca lewy węzeł
     *
     * @return integer
     */
    public function getLft ()
    {
        return (int)$this->get(Table::FIELD_LFT);
    }

    /**
     * Definiuje prawy węzeł
     *
     * @param integer $rgt prawy węzeł
     * @return void
     */
    public function setRgt ($rgt)
    {
        $this->{Table::FIELD_RGT} = (int)$rgt;
    }

    /**
     * Zwraca prawy węzeł
     *
     * @return integer
     */
    public function getRgt ()
    {
        return (int)$this->get(Table::FIELD_RGT);
    }
}